#include "SalidaTexto.h"

SalidaTexto::SalidaTexto(const char* fuenteParam, int tamanioFuente) {
	cout << "abriendo fuente" << endl;
	//fuente = TTF_OpenFont(fuenteParam, tamanioFuente);
	cout << tamanioFuente << endl;
	tamanio = tamanioFuente;
	cutSurface = SDL_CreateRGBSurface(SDL_SWSURFACE, 300, 300, 32, 0, 0, 0, 0);
}

bool SalidaTexto::setSuperficie(SDL_Surface* superficie) {
	if (superficie == NULL) {
		return false;
	}
	drawSurface = superficie;
	return true;
}



SalidaTexto::~SalidaTexto(void) {
	SDL_FreeSurface(msgSurface);
	TTF_CloseFont(fuente);
}

void SalidaTexto::echo(const char* texto, SDL_Rect posicion) {

	TTF_Font* nuevaFuente = TTF_OpenFont("font.ttf", 18);
	cout << texto << endl;
	
	if (fuente == NULL) {
		cout << "fuente en null" << endl;
		system("pause");
		return;
	}
	else if (msgSurface == NULL) {
		cout << "pantalla en null" << endl;
		system("pause");
		return;
	}
	else if (drawSurface == NULL) {
		cout << "pantalla en null" << endl;
		system("pause");
		return;
	}
	else if (cutSurface == NULL) {
		cout << "pantalla en null" << endl;
		system("pause");
		return;
	}
	
	msgSurface = TTF_RenderText_Solid(nuevaFuente, texto, colorTexto);
	SDL_Rect msqm = {posicion.x, posicion.y};
	SDL_Rect msqm2 = {0,0};
	
	SDL_BlitSurface(drawSurface, NULL, cutSurface, &msqm2);
	SDL_BlitSurface(msgSurface, NULL, drawSurface, &msqm);
	SDL_Flip(drawSurface);

	cout << "dibujando" << endl;
}

void SalidaTexto::limpiar() {
	SDL_Rect msqm = {0,0};
	SDL_BlitSurface(cutSurface, NULL, drawSurface, &msqm);
	SDL_Flip(drawSurface);
}
